module HA_(A,B,S,Cout);
 

 
input A,B;
 
output S,Cout;
 

 
	xor(S,A,B);
 
	and(Cout,A,B);
 

 
endmodule
 

 
//////////////////////////////////////////////////////////////////////////////////
 
// 		Full Adder 		//////////////////////////////////////////	
 
//////////////////////////////////////////////////////////////////////////////////
 
module FA_(A,B,Cin,S,Cout);
 

 
input A,B,Cin;
 
output S,Cout;
 

 
wire w1, w2, w3;
 

 
	HA_ ha0(A,B,w1,w2);
 
	HA_ ha1(w1,Cin,S,w3);
 
	or(Cout,w2,w3);
 

 
endmodule
 

 

 
//////////////////////////////////////////////////////////////////////////////////
 
// 	8 bit Ripple Carry Adder	//////////////////////////////////////////	
 
//////////////////////////////////////////////////////////////////////////////////
 
module RCA(A,B,C0,S,C8);
 

 
input [7:0]A;
 
input [7:0]B;
 
input C0;
 
output [7:0]S;
 
output C8;
 

 
wire C1,C2,C3,C4,C5,C6,C7;
 

 
	FA_ fa0(A[0],B[0],C0,S[0],C1);
 
	FA_ fa1(A[1],B[1],C1,S[1],C2);
 
	FA_ fa2(A[2],B[2],C2,S[2],C3);
 
	FA_ fa3(A[3],B[3],C3,S[3],C4);
 
	FA_ fa4(A[4],B[4],C4,S[4],C5);
 
	FA_ fa5(A[5],B[5],C5,S[5],C6);
 
	FA_ fa6(A[6],B[6],C6,S[6],C7);
 
	FA_ fa7(A[7],B[7],C7,S[7],C8);
 

 
endmodule